<?php
function login_check()
{
if (!$_SESSION['ss_mb_id']) 
    alert("로그인 한 회원만 접근하실 수 있습니다.");
}

function requireProcess($required) {
    foreach($_POST as $key => $val) {
        if(isset($required[$key])) {
            if(!is_array($val)) {
                $val = trim($val);
            } else {
                foreach($val as &$val2) {
                    $val2 = trim($val2);
                }
            }
            if(!$val) {
                alert("{$required[$key]} 항목은 필수입력항목입니다.");
            }
        }
    }
}

function encodeTime($starttime)
{
        $div = array();
        if($starttime > 12) {
            $div[0] = $div[1] = '오후';
            $starttime = $starttime - 12;
            $endtime = $starttime+1;
            if($endtime > 12) {
                $div[] = '오전';
            } 
        } else {
            $div[0] = $div[1] = '오전';
            $endtime = $starttime+1;
            if($endtime  > 12) {
               $div[1] = '오후'; 
            }
        }
            return $div[0]. " ".$starttime++.'시~'.$div[1]." ".$starttime.'시';
}
function memberDivisionFileter($division) {
	switch ($division) {
		case "student":
			return "학생";
			break;
		case "teacher":
			return "강사";
			break;
		case "parent":
			return "학부모";
			break;
		case "기타":
			return "etc";
			break;
		case "학생":
			return "student";
			break;
		case "강사":
			return "teacher";
			break;
		case "학부모":
			return "parent";
			break;
		default:
			return "기타";
			break;
	}
}
	/**
	 * 아이디를 기반으로 디비에서 읽어서 stdClass형식으로 반환.
	 *
	 * 	테이블의 primary 키를 읽음. primary key의 필드 이름은 id
	 * @param int $id
	 * @param string $tableName
	 * @return object 반환값.
	 */

	function getDb($tableName, $id, $primary = 'id') {
        $sql = "SELECT * FROM $tableName WHERE $primary = '$id'";
		$res = mysql_query($sql);
		return mysql_fetch_assoc($res);
	}

	/**
	 * 디비에 밀어넣음. 수정이든 삭제든 관계없이. 수정인 경우 $id에 값을 채워보낼것.
	 *
	 * @param unknown_type $tableName
	 * @param unknown_type $data
	 * @param unknown_type $id
	 * @return mysql result
	 */
	function putDb($tableName, $data, $fields = array()) {
        if($fields) {
            $dataKeys = array_keys($data);
            $fieldsValues = array_values($fields);

        $toPutFieldNames = array_intersect($dataKeys, $fieldsValues);
        $toPutData = array();
            foreach($data as $key => $val) {
                if(in_array($key, $toPutFieldNames)) {
                    $toPutData[$key] = $val;
                }
            }
        } else {
            $toPutData = $data;
        }
            foreach($toPutData as &$val) {
                $val = "'".addslashes($val)."'";
            }
        
		$key = implode(',', array_keys($toPutData));
		$value = implode(',', array_values($toPutData));
		$sql = "REPLACE INTO $tableName ($key) VALUES ($value)";
		return mysql_query($sql);
	}
	
	
	function deleteDb($tableName, $id) {
		mysql_query("DELETE FROM $tableName WHERE id=$id");
		return mysql_affected_rows();
	}
	
	function redirect($address = null) {
        if(!$address) {
            $address = $_SERVER['HTTP_REFERER'];
        }
		header("Location: $address");
	}
	
	function getCount($tableName, $where = null) {
		$sql = "SELECT count(1) FROM $tableName ";
		if($where) {
			$sql .="WHERE $where";
		}
		
		list($ret) = mysql_fetch_array(mysql_query($sql));
		return $ret;
	}
	
    function getAndWhere($array) {
        foreach($array as $key => $val) {
            if(!$val) unset ($array[$key]);
        }
        return implode(' AND ', $array);
    }

    function mb_datafilter($data) {
        $data['mb_sex'] = $data['mb_sex'] == 'M'? '남':'여';
        return $data;
    }

    function json_encode2($data) { 
        switch (gettype($data)) { 
            case 'boolean': 
            return $data?'true':'false'; 
            case 'integer': 
            case 'double': 
            return $data; 
            case 'string': 
            return '"'.strtr($data, array('\\'=>'\\\\','"'=>'\\"')).'"'; 
            case 'array': 
            $rel = false; // relative array? 
            $key = array_keys($data); 
            foreach ($key as $v) { 
                if (!is_int($v)) { 
                    $rel = true; 
                    break; 
                } 
            } 
            $arr = array(); 
            foreach ($data as $k=>$v) { 
                $arr[] = ($rel?'"'.strtr($k, array('\\'=>'\\\\','"'=>'\\"')).'":':'').json_encode2($v); 
            } 
            return $rel?'{'.join(',', $arr).'}':'['.join(',', $arr).']'; 
            default: 
            return '""'; 
        } 
    } 

	/**
	 * 특정 폴더에 업로드된 파일을 복사한 다음에 임시파일 삭제
	 *
	 * @param string $frmName 폼이름 ex.<input type=file name=img일때 img
	 * @param string $targetDir 저장될 폴더이름
	 * @param array $allowFileType 저장가능한 확장자들
	 * @return string $newfilename 저장된 랜덤 파일 이름-_-(이정도 해도 안겹치겠지..
	 */
    function fileUpload($frmName, $targetDir, $allowFileType) {
        $filename = $_FILES[$frmName]['name'];
        if ($_FILES[$frmName]['error'] == 1) {
            alert("\'{$filename}\' 파일의 용량이 서버에 설정(".ini_get('upload_max_filesize')."된 값보다 크므로 업로드 할 수 없습니다.\\n");
            break;
        } else if ($_FILES[$frmName]['error'] != 0) {
            alert("\'{$filename}\' 파일이 정상적으로 업로드 되지 않았습니다.\\n");
            break;
        }
        $tttttemp = explode('.', $filename);
        $iiiiindex  =count($tttttemp) -1; 
        
        $ext = $tttttemp[$iiiiindex];
        $newfilename = mktime().rand(0,100000).".".$ext;
        if(!in_array(strtolower(array_pop(explode(".",$filename))), $allowFileType)) {
            alert("오류 : 허용되지 않은 형식의 파일을 업로드 하셨습니다.");
        } else {
            $_filetmpname = $_FILES[$frmName]['tmp_name'];
            if(!copy($_filetmpname, $targetDir.$newfilename)){
                alert("오류 : 파일 복사 실패");
            } else {
                @chmod($targetDir.newfilename, 0606);
            }
        }
        @unlink($_FILES[$frmName]['tmp_name']);
        return $newfilename;
    }

    function getPager2($totalCount, $perPage = 20) {
            require_once 'Pager.php';
            $page = isset($_GET['page'])? $_GET['page'] : 1;
            $pagerOptions = array('totalItems' => $totalCount, 'perPage' => $perPage,'currentPage' => $page, 'expanded' => true, 'urlVar' => 'page', 'firstPagePre' =>'', 'clearIfVoid' => false, 'prevImg'=>'<img src="images/sub_reg_buttom_pre.gif" align="absmiddle" border="0" />', 'nextImg'=>'<img src="images/sub_reg_buttom_next.gif" align="absmiddle" border="0" />');
            $pager = Pager::factory($pagerOptions);
            return $pager->links;
    }
    function getPager($totalCount, $perPage = 20) {
            require_once 'Pager.php';
            $page = isset($_GET['page'])? $_GET['page'] : 1;
            $pagerOptions = array('totalItems' => $totalCount, 'perPage' => $perPage,'currentPage' => $page, 'expanded' => true, 'urlVar' => 'page', 'firstPagePre' =>'', 'clearIfVoid' => false, 'prevImg'=>'<div align="center"><img src="images/but_arrow_pre.gif" width="74" height="19" align="absmiddle" />', 'nextImg'=>'<img src="images/but_arrow_next.gif" width="74" height="19" align="absmiddle" />');
            $pager = Pager::factory($pagerOptions);
            return $pager->links;
    }

    function getLimit($limit = 20, $page=null ) {
        if(!$page) {
            $page = (isset($_GET['page'])&&$_GET['page'])? $_GET['page'] :1;
        }
        $offset = $page-1;
        return "Limit $offset, $limit";
    }

function strcut_utf8($str, $len, $tail='...'){
    $rtn = array();
    return preg_match('/.{'.$len.'}/su', $str, $rtn) ? $rtn[0].$tail : $str;
}

function print00($num) {
    if($num < 10) {
        return '0'.$num; 
    }
    return $num;
}


function getAMPMtime($num) {
    $ampm = 'AM';
    $han = "오전";
    if($num >= 12 && $num < 24) {
        $ampm = 'PM';
        $han = "오후";
        $num-=12; 
    } else if($num >= 24) {
        $num-=24; 
    }

    return array('ampm'=>$ampm, 'han'=>$han, 'time'=>$num); 
}
